Questo progetto punta a rispondere alle seguenti domande:
Variabili presenti nel dataset utilizzato: * Entinty : nome dello Stato * Code : codice dello Stato * Region : continente a cui appartiene lo Stato * Sub_Region : sotto regione del continente in cui si trova lo Stato * Year : anno * Human_Development_Index : indice di sviluppo umano dello Stato * Life_Expectancy : aspettativa di vita dello Stato * Average_years_schooling : numero medio di anni in cui le persone di età superiore ai 25 anni hanno partecipato all’istruzione formale dello Stato * Expected_years_of_schooling : numero di anni di scolarizzazione che un bambino in età di ammissione alla scuola può aspettarsi di ricevere dallo Stato * GDP_per_capita : PIL pro capite dello Stato * Population *: popolazione dello Stato
HumanDevelopmentIndex <- read_csv("D:/Desktop/uniud materie/primo anno/fondamenti dei dati/Esame data science/HDI/HumanDevelopmentIndex.csv",show_col_types = FALSE)
head(HumanDevelopmentIndex)
## # A tibble: 6 x 11
## Entity Code Region Sub_R~1 Year Human~2 Life_~3 Avera~4 Expec~5 GDP_p~6
## <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Afghanistan AFG Asia Southe~ 2002 0.373 56.8 2.3 6.5 797.
## 2 Afghanistan AFG Asia Southe~ 2003 0.383 57.3 2.4 6.8 843.
## 3 Afghanistan AFG Asia Southe~ 2004 0.398 57.8 2.5 7.9 869.
## 4 Afghanistan AFG Asia Southe~ 2005 0.408 58.3 2.6 8.1 964.
## 5 Afghanistan AFG Asia Southe~ 2006 0.417 58.8 2.7 8.4 1057.
## 6 Afghanistan AFG Asia Southe~ 2007 0.429 59.4 2.9 8.7 1260.
## # ... with 1 more variable: Population <dbl>, and abbreviated variable names
## # 1: Sub_Region, 2: Human_Development_Index, 3: Life_Expectancy,
## # 4: Average_years_schooling, 5: Expected_years_of_schooling,
## # 6: GDP_per_capita
L’HDI (Human Development Index) è un indice (compreso tra 0 e 1) introdotto nel 1990 e utilizzato per stabilire lo sviluppo umano dei vari Stati. Viene calcolato in base a: * Vita lunga e sana: misurata dall’aspettativa di vita * Istruzione: misurata dagli anni di scolarizzazione previsti per i bambini e dagli anni medi di scolarizzazione della popolazione adulta * Tenore di vita: misurato dal reddito nazionale lordo pro capite adeguato ai prezzi dello Stato
HDI <- HumanDevelopmentIndex %>% group_by(Entity) %>% select(Entity:Human_Development_Index)
datatable(HDI)
Ordinando il dataset in base ai valori di HDI registrati possiamo notare come i valori più bassi appartengano tutti a Stati africani mentre i valori più alti appartengono soprattutto a Stati europei. In particolare, lo Stato che ha registrato il più basso valore di HDI è il Rwanda con 0.199 nel 1994 a causa di un genocidio durato fino al 1996.Altri Stati con valori molto bassi sono il Mozambique (a causa di una guerra civile),il Niger e il Mali (ribellione che ha interessato entrambi gli Stati). Lo Stato che ha registrato più volte il valore più alto è la Norvegia con valori superiori a 0.94 dal 2014 al 2017. Seguono Svizzera, Australia e Irlanda con valori superiori a 0.93. Per l’Asia il primo Stato è Singapore con 0.932 mentre per l’America è il Canada con 0.926.
Visualizziamo l’andamento dell’HDI nel periodo 1990-2017 per ogni Stato:
HumanDevelopmentIndexYears <- HDI %>% ggplot(aes(x = Year,y = Human_Development_Index,color=Entity)) + geom_line(aes(group = Entity),size=.9,alpha=.6,show.legend = FALSE) +
theme_classic() + labs(title = "Andamento HDI negli anni",subtitle = "Periodo 1990-2017", x = "Year", y = "HDI") + theme(axis.line = element_line(size = 1), plot.title = element_text(size=16),plot.subtitle = element_text(size=11),axis.title.x = element_text(size =14 ),axis.title.y = element_text(size =14),
axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(0.15,1), breaks = seq(0.20,1,0.10)) + scale_x_continuous(limits = c(1990,2017), breaks = seq(1990,2017,3))
HumanDevelopmentIndexYears
Si nota un miglioramento che sembrerebbe interessare quasi tutti gli Stati. Il valore minimo è passato dallo 0.2 registrato dal Mozambique nel 1990 allo 0.35 registrato dal Niger nel 2017. Anche il valore massimo è migliorato passando dallo 0.866 registrato dall’Australia nel 1990 allo 0.953 registrato dalla Norvegia nel 2017.
Dalle prime analisi si è subito notato come i valori più bassi appartengano tutti agli Stati africani. Vediamo come i valori si distribuiscono nei vari continenti.
HDIStats <- HumanDevelopmentIndex %>% ggplot(aes(x = Human_Development_Index)) + geom_histogram(binwidth = .01,aes(fill=Region),show.legend = FALSE)+ labs(title = "Valori HDI nei continenti",x = "HDI") + theme(plot.title = element_text(size=16),axis.title.x = element_text(size = 14 ),axis.title.y = element_text(size =14), axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_x_continuous(limits = c(0.15,1), breaks = seq(0.20,1,0.10)) + scale_fill_manual(values = c(Africa="darkgoldenrod2",Europe="cyan4",Americas="red3",Asia="palegreen3",Oceania="darkslateblue"))
ggplotly(HDIStats)
Da questo grafico notiamo come i valori degli Stati africani variano in un range molto ampio che va dai valori più bassi attorno allo 0.2 fino ai valori più alti attorno allo 0.8. I valori sembrano concentrarsi principalmente nella zona tra 0.3 e 0.6.
Anche gli Stati asiatici, nonostante valori più alti rispetto a quelli africani, sembrano avere un range molto ampio che va da valori bassi attorno allo 0.35 a valori molto alti attorno allo 0.90. I valori sembrano concentrarsi principalmente tra 0.58 e 0.79.
Gli Stati americani hanno registrato valori in un range che va dai più bassi attorno allo 0.4 ai più alti superiori allo 0.9. I valori sembrano concentrarsi principalmente tra 0.65 e 0.78.
Gli Stati europei hanno un range di valori meno ampio rispetto ai precedenti che va dallo 0.6 fino allo 0.95. I valori sembrano concentrarsi principalmente tra lo 0.72 e lo 0.91.
Infine, gli Stati dell’Oceania possiedono il range minore tra i continenti che va dallo 0.80 allo 0.94.
I valori più bassi oltre che ad appartenere quasi tutti a Stati del continente africano sembrano avere anche in comune la sottoregione. Proviamo a visualizzare la situazione relativa all’Africa:
HumanDevelopmentIndexAfrica <- HumanDevelopmentIndex %>% filter(Region == "Africa") %>% ggplot(aes(x = reorder(Sub_Region,Human_Development_Index,median),y = Human_Development_Index,fill=Sub_Region)) + geom_boxplot(show.legend = FALSE) + theme_light() + facet_wrap(~ Region) + labs(x = "Sub-Region",y = "HDI") + theme(axis.title.x = element_text(size = 14 ),axis.title.y = element_text(size =14), axis.text.x = element_text(size = 10), axis.text.y = element_text(size = 10)) + scale_y_continuous(limits = c(0.15,0.9), breaks = seq(0.20,0.8,0.10))
ggplotly(HumanDevelopmentIndexAfrica)
L’Africa subsahariana (parte del continente africano situata a sud del Deserto del Sahara) possiede i valori minimi (attorno allo 0.2) registrati nel continente e ha registrato in generale valori più bassi rispetto all’Africa del Nord.Il valore mediano dell’Africa subsahariana (0.45) è inferiore rispetto a quello dell’Africa del Nord (0.63) e sembra avere un range di valori molto più ampio. L’Africa del Nord sembra essere nel complesso più sviluppata ma nonostante questo i valori più alti sono stati registrati nell’Africa subsahariana.
Il primo fattore per la determinazione dell’HDI di uno Stato è la sua aspettativa di vita.
Vediamo l’andamento dell’aspettativa di vita negli anni per ciascuno Stato.
LifeExpectancyYears <- HumanDevelopmentIndex %>% ggplot(aes(x = Year,y = Life_Expectancy,color=Entity)) + geom_line(aes(group = Entity),size=.9,alpha=.6,show.legend = FALSE) + theme_classic() + labs(title = "Andamento Life Expectancy negli anni",subtitle = "Periodo 1990-2017", x = "Year", y = "Life Expectancy") + theme(axis.line = element_line(size = 1), plot.title = element_text(size=16),plot.subtitle = element_text(size=11),axis.title.x = element_text(size =14 ),axis.title.y = element_text(size =14),
axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(20,90), breaks = seq(30,90,10)) + scale_x_continuous(limits = c(1990,2017), breaks = seq(1990,2017,3))
LifeExpectancyYears
Anche qui, come nel grafico riguardante l’HDI, notiamo un miglioramento che sembra riguardare tutti gli Stati. Il valore più basso è stato toccato nel 1993 dal Rwanda a causa di un genocidio che ha abbassato l’aspettativa di vita a 26.17 anni. Il valore più alto invece appartiene al Giappone che nel 2017 ha registrato un’aspettativa di vita pari a 84.29. Il valore più basso è passato dal 33.41 registrato dal Rwanda nel 1990 al 52.24 registrato dalla Repubblica Centrafricana nel 2017. Il valore più alto è passato dal 79 registrato dal Giappone nel 1990 al 86.29 registrato sempre dal Giappione nel 2017. Si noti come il Giappione ha posseduto il primato per l’aspettativa di vita più alta per tutti e 27 gli anni.
Osservando i dati si nota che anche per l’aspettativa di vita gli Stati africani possiedono i valori più bassi. Visualizziamo la distribuzione di questo parametro nei vari continenti:
LifeExpectancyRegion <- HumanDevelopmentIndex %>% ggplot(aes(x = reorder(Region,Life_Expectancy,median),y = Life_Expectancy,fill=Region)) + geom_boxplot(show.legend = FALSE) + theme_light() + labs(title = "Valori Life Expectancy per continente", x = "Continent", y = "Life Expectancy") + theme(plot.title = element_text(size=16),plot.subtitle = element_text(size=11),axis.title.x = element_text(size =14 ),axis.title.y = element_text(size =14),axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(25,85), breaks = seq(30,80,10)) + scale_fill_manual(values=c(Africa="darkgoldenrod2",Europe="cyan4",Americas="red3",Asia="palegreen3",Oceania="darkslateblue"))
ggplotly(LifeExpectancyRegion)
La situazione sembra molto simile rispetto a quella dell’HDI. Gli Stati africani anche in questo caso sembrano avere il range più ampio e registrano i valori più bassi in assoluto. Successivamente gli Stati asiatici con valori superiori a quelli degli Stati africani e con un range abbastanza ampio possiedono il valore più alto in assoluto grazie al Giappone.L’America ha un range ancora più stretto e valori concentrati in intervallo più alto rispetto a quelli asiatici nonostante alcuni outsiders come valori inferiori. Infine, Stati europei e dell’Oceania che possiedono range stretti e con valori più alti rispetto agli altri continenti ma che questa volta non contengono il valore massimo in assoluto.
Verifichiamo come lo sviluppo di uno Stato varia in base alla variazione della sua aspettativa di vita.
HDIvsLE <- HumanDevelopmentIndex %>% ggplot(aes(x=Life_Expectancy,y = Human_Development_Index,size = Population,color = Region)) + geom_point(alpha=1/2) + transition_time(Year) + shadow_wake(0.25, wrap = FALSE) + labs(title = "HDI vs Life Expectancy",subtitle = "Periodo: 1990-2017", x = "Life Expectanvcy", y = "HDI") + theme(plot.title = element_text(size=16),plot.subtitle = element_text(size=11),axis.title.x = element_text(size =14),axis.title.y = element_text(size =14),axis.text.x = element_text(size =12), axis.text.y= element_text(size =12)) + scale_y_continuous(limits = c(0.15,1), breaks = seq(0.20,1,0.10)) + scale_x_continuous(limits = c(20,90), breaks = seq(30,90,10))+ scale_fill_manual(values=c(Africa="darkgoldenrod2",Europe="cyan4",Americas="red3",Asia="palegreen3",Oceania="darkslateblue"))
gif <- animate(HDIvsLE)
gif
Dal grafica si nota come l’aumentare dell’aspettativa di vita comporti un aumento dell’HDI. La tendenza per tutti gli Stati è quella di aumentare entrambi gli indici. Infatti, sembra che tutti gli Stati stiano cercando di raggiungere l’angolo in alto a destra con i Paesi appartenenti all’Europa e all’Oceania a guidare il gruppo. A metà strada si posizionano la maggior parte dei Paesi americani e asiatici mentre si notano gli Stati africani in fondo alla coda che inseguono gli altri continenti. Da sottolineare come i Paesi africani abbiano recuperato molto terreno dal 2000 in poi.
Il secondo fattore importante per la determinazione dell’hdi è l’istruzione
Stimano il numero medio di anni di scolarizzazione ricevuti da adulti di età pari o superiore a 25 anni.
AverageSchooling <- HumanDevelopmentIndex %>% ggplot(aes(x = reorder(Region,Average_years_schooling,median),y = Average_years_schooling,fill=Region)) +
geom_boxplot(show.legend = FALSE) + theme_light() + labs(title = "Anni medi di scolarizzazione",subtitle="Numero medio di anni in cui le persone di età superiore ai 25 anni hanno partecipato all'istruzione formale",x = "Continent",y="Average years of Schooling") + theme(plot.title = element_text(size=16),plot.subtitle = element_text(size=10),axis.title.x = element_text(size = 14 ),axis.title.y = element_text(size =14), axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(0,17), breaks = seq(5,15,5))
AverageSchooling
## Warning: Removed 2 rows containing non-finite values (stat_boxplot).
ExpectedYearSchooling <- HumanDevelopmentIndex %>% ggplot(aes(x = reorder(Region,Expected_years_of_schooling,median),y = Expected_years_of_schooling,fill=Region)) +
geom_boxplot(show.legend = FALSE) + theme_light() + labs(title = "Anni di scolarizzazione previsti",subtitle="numero di anni di scolarizzazione che un bambino in età di ammissione alla scuola può aspettarsi di ricevere",x = "Continent",y="Expected years of Schooling") + theme(plot.title = element_text(size=16),plot.subtitle = element_text(size=10),axis.title.x = element_text(size = 14 ),axis.title.y = element_text(size =14), axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(2,23), breaks = seq(5,20,5))
ExpectedYearSchooling
## Warning: Removed 1 rows containing non-finite values (stat_boxplot).
HumanDevelopmentIndex <- HumanDevelopmentIndex %>% mutate(lHDI = log2(Human_Development_Index),lGDP = log2(GDP_per_capita))
Africa <- HumanDevelopmentIndex %>% filter(Region == "Africa")
Americas <- HumanDevelopmentIndex %>% filter(Region == "Americas")
Europe <- HumanDevelopmentIndex %>% filter(Region == "Europe")
Asia <- HumanDevelopmentIndex %>% filter(Region == "Asia")
Oceania <- HumanDevelopmentIndex %>% filter(Region == "Oceania")
modAfrica <- lm(lHDI ~ lGDP,Africa)
Africaml <- ggplot(Africa,aes(lGDP,lHDI)) + geom_point(alpha=0.5) + geom_abline(intercept=modAfrica$coefficients[1],slope =modAfrica$coefficients[2],color="red",size=1) + labs(title = "Africa",x = "GDP(log)",y="HDI(log)") + theme(plot.title = element_text(size=13),axis.title.x = element_text(size = 9 ),axis.title.y = element_text(size =9), axis.text.x = element_text(size =10), axis.text.y = element_text(size =10))
modAmericas <- lm(lHDI ~ lGDP,Americas)
Americasml <- ggplot(Americas,aes(lGDP,lHDI)) + geom_point(alpha=0.5) + geom_abline(intercept=modAmericas$coefficients[1],slope =modAmericas$coefficients[2],color="red",size=1)+ labs(title = "Americas",x = "GDP(log)",y="HDI(log)") + theme(plot.title = element_text(size=13),axis.title.x = element_text(size = 9 ),axis.title.y = element_text(size =9), axis.text.x = element_text(size =10), axis.text.y = element_text(size =10))
modEurope <- lm(lHDI ~ lGDP,Europe)
Europeml <- ggplot(Europe,aes(lGDP,lHDI)) + geom_point(alpha=0.5) + geom_abline(intercept=modEurope$coefficients[1],slope =modEurope$coefficients[2],color="red",size=1)+ labs(title = "Europe",x = "GDP(log)",y="HDI(log)") + theme(plot.title = element_text(size=13),axis.title.x = element_text(size = 9 ),axis.title.y = element_text(size =9), axis.text.x = element_text(size =10), axis.text.y = element_text(size =10))
modAsia <- lm(lHDI~ lGDP,Asia)
Asiaml <- ggplot(Asia,aes(lGDP,lHDI)) + geom_point(alpha=0.5) + geom_abline(intercept=modAsia$coefficients[1],slope =modAsia$coefficients[2],color="red",size=1) + labs(title = "Asia",x = "GDP(log)",y="HDI(log)") + theme(plot.title = element_text(size=13),axis.title.x = element_text(size = 9 ),axis.title.y = element_text(size =9), axis.text.x = element_text(size =10), axis.text.y = element_text(size =10))
modOceania <- lm(lHDI ~ lGDP,Oceania)
Oceaniaml <- ggplot(Oceania,aes(lGDP,lHDI)) + geom_point(alpha=0.5) + geom_abline(intercept=modOceania$coefficients[1],slope =modOceania$coefficients[2],color="red",size=1)+ labs(title = "Oceania",x = "GDP(log)",y="HDI(log)") + theme(plot.title = element_text(size=13),axis.title.x = element_text(size = 9 ),axis.title.y = element_text(size =9), axis.text.x = element_text(size =10), axis.text.y = element_text(size =10))
grid.arrange(
Africaml,
Europeml,
Americasml,
Asiaml,
Oceaniaml,
nrow=2, ncol = 3)
continents <- c("Africa","Europe","Americas","Asia","Oceania")
DeterminationCoefficient <- c(summary(modAfrica)$r.squared,summary(modEurope)$r.squared,summary(modAmericas)$r.squared,summary(modAsia)$r.squared,summary(modOceania)$r.squared)
Determination <- data.frame(continents,DeterminationCoefficient)
DC <- ggplot(Determination,aes(x=continents,y=DeterminationCoefficient,fill=continents)) + geom_col() + labs(title = "Coefficiente di determinazione",x = "Continent",y="Value") + theme(plot.title = element_text(size=16),plot.subtitle = element_text(size=10),axis.title.x = element_text(size = 14 ),axis.title.y = element_text(size =14), axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(0,1), breaks = seq(0,1,.25))
ggplotly(DC)
PearsonValue <- c(cor(Africa$lHDI,Africa$lGDP),cor(Europe$lHDI,Europe$lGDP),cor(Americas$lHDI,Americas$lGDP),cor(Asia$lHDI,Asia$lGDP),cor(Oceania$lHDI,Oceania$lGDP))
Pearson <- data.frame(continents,PearsonValue)
Prs <- ggplot(Pearson,aes(x=continents,y=PearsonValue,fill=continents)) + geom_col() + theme_bw() + labs(title = "Coefficiente di Pearson",x = "Continent",y="Value") + theme(plot.title = element_text(size=16),plot.subtitle = element_text(size=10),axis.title.x = element_text(size = 14 ),axis.title.y = element_text(size =14), axis.text.x = element_text(size =12), axis.text.y = element_text(size =12)) + scale_y_continuous(limits = c(0,1), breaks = seq(0,1,.25))
ggplotly(Prs)